package net.bracode.entity;

import java.util.ArrayList;

import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class Participante {
	
	private int id;
	private String nome;
	private String cpf;
	private String fone;
	private String perfil;
	
	public Participante() {}
	
	public Participante(String nome, String cpf, String fone, String perfil) {
		this.nome = nome;
		this.cpf = cpf;
		this.fone = fone;
		this.perfil = perfil;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getFone() {
		return fone;
	}

	public void setFone(String fone) {
		this.fone = fone;
	}

	public String getPerfil() {
		return perfil;
	}

	public void setPerfil(String perfil) {
		this.perfil = perfil;
	}
	
	@Override
	public String toString() {
		return "id: "   + this.id    + "\n" +
			   "Nome:"  + this.nome  + "\n" + 
			   "CPF: "  + this.cpf   + "\n" +
			   "Fone: " + this.fone  + "\n" +
			   "Perfil" + this.perfil;
			
	}
	
	public static ArrayList<TableColumn<Participante, ?>> getColumns(TableView<Participante> table){
		ArrayList<TableColumn<Participante, ?>> columns = new ArrayList<TableColumn<Participante, ?>>();
		
		String[] columnsName = {"ID", "Nome", "CPF", "Fone", "Perfil"};
		String[] variableName= {"id", "nome", "cpf", "fone", "perfil"};
		
		TableColumn<Participante, Integer> id     = new TableColumn<>(columnsName[0]);
		TableColumn<Participante, Integer> nome   = new TableColumn<>(columnsName[1]);
		TableColumn<Participante, Integer> cpf    = new TableColumn<>(columnsName[2]);
		TableColumn<Participante, Integer> fone   = new TableColumn<>(columnsName[3]);
		TableColumn<Participante, Integer> perfil = new TableColumn<>(columnsName[4]);
		
		id.setPrefWidth(50);
		nome.setPrefWidth(200);
		cpf.setPrefWidth(100);
		fone.setPrefWidth(100);
		perfil.setPrefWidth(150);
		
		id.setCellValueFactory(new PropertyValueFactory<Participante, Integer>(variableName[0]));
		nome.setCellValueFactory(new PropertyValueFactory<Participante, Integer>(variableName[1]));
		cpf.setCellValueFactory(new PropertyValueFactory<Participante, Integer>(variableName[2]));
		fone.setCellValueFactory(new PropertyValueFactory<Participante, Integer>(variableName[3]));
		perfil.setCellValueFactory(new PropertyValueFactory<Participante, Integer>(variableName[4]));
		
		columns.add(id);
		columns.add(nome);
		columns.add(cpf);
		columns.add(fone);
		columns.add(perfil);
		
		
		return columns;
	}
	
}
